// 引入封装的网络请求工具
import http from '../../../utils/https.js';

Page({
  data: {
    billList: [],     // 缴费记录列表
    loading: false,   // 加载状态
    emptyTip: '暂无已缴费记录' // 空状态提示
  },

  // 跳转到详情页
  goToDetail(e) {
    const billId = e.currentTarget.dataset.id;
    console.log('点击的账单ID:', billId);
    
    // 从缴费记录列表中查找被点击的账单详情
    const bill = this.data.billList.find(item => item.id === billId);
    
    if (bill) {
      console.log('找到账单数据:', bill);
      
      // 构建URL参数（兼容微信小程序环境）
      const params = [
        `id=${bill.id || ''}`,
        `billName=${encodeURIComponent(bill.billName || '')}`,
        `billNumber=${encodeURIComponent(bill.billNumber || '')}`,
        `chargeEndTime=${encodeURIComponent(bill.chargeEndTime || '')}`,
        `chargeScope=${encodeURIComponent(bill.chargeScope || bill.totalAmount || '')}`,
        `paymentStatus=${bill.paymentStatus || '0'}`, // 已缴费状态（0=已缴费）
        `description=${encodeURIComponent(bill.description || '')}`
      ].join('&');
      
      // 跳转到详情页，通过URL参数传递数据
      wx.navigateTo({
        url: `/mine/pages/payment-record/payment-recordDetails/payment-recordDetails?${params}`
      });
    } else {
      console.error('未找到账单数据，ID:', billId);
      wx.showToast({
        title: '账单信息不存在',
        icon: 'error'
      });
    }
  },

  // 刷新缴费记录
  refreshRecords() {
    this.setData({ loading: true });
    this.getPaymentRecords();
  },

  // 获取缴费记录数据
  getPaymentRecords() {
    this.setData({ loading: true });
    
    // 获取用户ID - 优先从Storage获取residentId
    let residentId = wx.getStorageSync('residentId');
    console.log('从Storage获取的residentId:', residentId);
    
    // 如果residentId不存在，尝试从全局数据获取
    if (!residentId) {
      const app = getApp();
      residentId = app.globalData && app.globalData.residentId;
      console.log('从全局数据获取的residentId:', residentId);
    }
    
    // 如果还是没有，尝试从userInfo中获取userId
    if (!residentId) {
      const userInfo = wx.getStorageSync('userInfo');
      if (userInfo && userInfo.userId) {
        residentId = userInfo.userId;
        console.log('从userInfo获取的userId作为residentId:', residentId);
      }
    }
    
    if (!residentId) {
      console.error('无法获取用户ID');
      wx.showToast({ title: '请先登录', icon: 'error' });
      this.setData({ loading: false });
      return;
    }
    
    // 构造查询参数（包含用户ID和已缴费状态）
    const queryParams = {
      residentId: residentId, // 后端mapper使用residentId字段
      paymentStatus: 0 // 查询已缴费记录（0=已缴费，1=未缴费）
    };
    
    console.log('=== 调试信息 ===');
    console.log('residentId值:', residentId);
    console.log('residentId类型:', typeof residentId);
    console.log('residentId是否为空:', !residentId);
    console.log('查询参数:', queryParams);
    console.log('查询条件: 用户ID(residentId字段)=', residentId, '缴费状态=已缴费(0)');
    console.log('字段映射: residentId -> residentId (直接使用)');
    console.log('=== 调试信息结束 ===');
    
    // 调用后端接口
    http.get('bilManagement/bilManagement/list', queryParams)
      .then(res => {
        this.setData({ loading: false });
        console.log('接口返回数据:', res);
        
        // 适配后端返回的rows格式
        let billData = [];
        if (res.rows) {
          billData = res.rows;
        } else if (res.data && res.data.rows) {
          billData = res.data.rows;
        } else if (res.data && res.data.list) {
          billData = res.data.list;
        } else if (res.data && Array.isArray(res.data)) {
          billData = res.data;
        }

        if (billData.length > 0) {
          // 格式化数据 - 只保留需要的字段
          const formattedData = billData.map(item => ({
            id: item.id,
            billName: item.billName || '未知费用',
            billNumber: item.billNumber || '',
            chargeEndTime: item.chargeEndTime || '',
            chargeScope: item.totalAmount || item.chargeScope || '0.00',
            paymentStatus: item.paymentStatus || 0, // 确保状态为已缴费（0=已缴费）
            description: item.description || '无特殊说明'
          }));
          
          this.setData({ billList: formattedData });
          console.log('格式化后的缴费记录:', formattedData);
        } else {
          this.setData({
            billList: [],
            emptyTip: '暂无已缴费记录'
          });
          wx.showToast({ title: '暂无已缴费记录', icon: 'none' });
        }
      })
      .catch(err => {
        this.setData({ loading: false });
        console.error('获取缴费记录失败:', err);
        wx.showToast({ title: '获取数据失败，请重试', icon: 'error' });
      });
  },

  onLoad() {
    // 页面加载时获取缴费记录
    this.getPaymentRecords();
  },
  
  // 下拉刷新
  onPullDownRefresh() {
    this.getPaymentRecords();
    wx.stopPullDownRefresh();
  }
});